home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / mkmf / RCS / mkmf.kernel,v < prev    next >
Encoding:
Text File  |  1992-10-22  |  15.0 KB  |  789 lines

  1. head     1.23;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    jhh:1.23; strict;
  6. comment  @@;
  7.  
  8.  
  9. 1.23
  10. date     92.06.10.13.04.40;  author jhh;  state Exp;
  11. branches ;
  12. next     1.22;
  13.  
  14. 1.22
  15. date     91.12.13.13.33.55;  author jhh;  state Exp;
  16. branches ;
  17. next     1.21;
  18.  
  19. 1.21
  20. date     91.11.03.17.51.32;  author jhh;  state Exp;
  21. branches ;
  22. next     1.20;
  23.  
  24. 1.20
  25. date     91.04.11.12.53.28;  author kupfer;  state Exp;
  26. branches ;
  27. next     1.19;
  28.  
  29. 1.19
  30. date     90.03.12.23.26.54;  author jhh;  state Exp;
  31. branches ;
  32. next     1.18;
  33.  
  34. 1.18
  35. date     89.10.09.21.28.07;  author rab;  state Exp;
  36. branches ;
  37. next     1.17;
  38.  
  39. 1.17
  40. date     89.08.18.11.21.36;  author douglis;  state Exp;
  41. branches ;
  42. next     1.16;
  43.  
  44. 1.16
  45. date     89.08.17.11.15.58;  author douglis;  state Exp;
  46. branches ;
  47. next     1.15;
  48.  
  49. 1.15
  50. date     89.04.06.21.40.20;  author jhh;  state Exp;
  51. branches ;
  52. next     1.14;
  53.  
  54. 1.14
  55. date     88.12.04.12.36.28;  author ouster;  state Exp;
  56. branches ;
  57. next     1.13;
  58.  
  59. 1.13
  60. date     88.08.12.14.38.25;  author ouster;  state Exp;
  61. branches ;
  62. next     1.12;
  63.  
  64. 1.12
  65. date     88.07.21.11.35.03;  author douglis;  state Exp;
  66. branches ;
  67. next     1.11;
  68.  
  69. 1.11
  70. date     88.07.20.10.22.24;  author ouster;  state Exp;
  71. branches ;
  72. next     1.10;
  73.  
  74. 1.10
  75. date     88.07.19.17.06.08;  author douglis;  state Exp;
  76. branches ;
  77. next     1.9;
  78.  
  79. 1.9
  80. date     88.06.29.14.29.57;  author ouster;  state Exp;
  81. branches ;
  82. next     1.8;
  83.  
  84. 1.8
  85. date     88.06.17.16.28.08;  author ouster;  state Exp;
  86. branches ;
  87. next     1.7;
  88.  
  89. 1.7
  90. date     88.06.06.08.34.48;  author ouster;  state Exp;
  91. branches ;
  92. next     1.6;
  93.  
  94. 1.6
  95. date     88.06.05.17.42.09;  author ouster;  state Exp;
  96. branches ;
  97. next     1.5;
  98.  
  99. 1.5
  100. date     88.06.05.14.23.45;  author deboor;  state Exp;
  101. branches ;
  102. next     1.4;
  103.  
  104. 1.4
  105. date     88.04.29.18.43.09;  author deboor;  state Exp;
  106. branches ;
  107. next     1.3;
  108.  
  109. 1.3
  110. date     88.03.31.17.14.39;  author deboor;  state Exp;
  111. branches ;
  112. next     1.2;
  113.  
  114. 1.2
  115. date     88.03.19.18.15.50;  author deboor;  state Exp;
  116. branches ;
  117. next     1.1;
  118.  
  119. 1.1
  120. date     88.03.18.15.06.39;  author deboor;  state Exp;
  121. branches ;
  122. next     ;
  123.  
  124.  
  125. desc
  126. @Subscript for top-level kernel source directory
  127. @
  128.  
  129.  
  130. 1.23
  131. log
  132. @make sure all makefiles include TYPE
  133. @
  134. text
  135. @#!/sprite/cmds/csh -f
  136. #
  137. # A script to generate (or regenerate) a kernel module Makefile
  138. # from a prototype Makefile.  If ./Makefile.proto exists, use it, else
  139. # use a common prototype.
  140. #
  141. # This script is invoked from mkmf.
  142. #
  143. # Parameters passed in from mkmf as environment variables:
  144. #    DOMACHINES    names of machines we are supposed to run mkmf on
  145. #    MKMFDIR        directory containing prototype makefiles
  146. #    MKMFFLAGS    arguments to all mkmfs run recursively
  147. #    MACHINES    list of machine names (e.g. "sun2 sun3"), for
  148. #            which there are machine-specific subdirectories
  149. #            (sun2.md, sun3.md) to hold the object files and
  150. #            any machine-specific source files to use when
  151. #            compiling for that machine
  152. #    MAKEFILE    name of makefile to create
  153. #    SUBTYPE        information about the type makefile
  154. #            
  155. # $Header: /sprite/lib/mkmf/RCS/mkmf.kernel,v 1.22 91/12/13 13:33:55 jhh Exp $ (SPRITE) Berkeley
  156. #
  157.  
  158. onintr cleanup
  159.  
  160. #
  161. # Argument processing.  (Generalized form, even though just one flag so far.)
  162. #
  163. set type=$0
  164. set type=$type:e
  165.  
  166. while ($#argv >= 1)
  167.     if ("$1" == '-x') then
  168.     set echo
  169.     endif
  170.     shift
  171. end
  172. set subtype=$SUBTYPE
  173. set name=$cwd:t
  174. set pref='[a-z_A-Z]'
  175. set machines=($MACHINES)
  176. set domachines = ($DOMACHINES)
  177. set makefile=$MAKEFILE
  178. set distdir=($DISTDIR)
  179.  
  180. if (-e $makefile.proto) then
  181.     set proto=$makefile.proto
  182. else
  183.     set proto="${MKMFDIR}/Makefile.$type"
  184. endif
  185.  
  186. echo "Generating $makefile for module $name from $proto"
  187.  
  188.  
  189. set nonomatch
  190. set hdrs =( ${name}*.h )
  191. if ("$hdrs" == "${name}*.h") set hdrs=()
  192. set pubHdrs=(`echo $hdrs | sed -e "s/[^ ]*Int.h//g"`)
  193. set allSrcs =( ${pref}*.[cylsp] )
  194. #
  195. # Check to see if there were any sources.  The first check (size == 1)
  196. # is only necessary because the second check will cause an error if
  197. # allSrcs contains more than 1024 bytes.
  198. #
  199. if ($#allSrcs == 1) then
  200.     if ("$allSrcs" == "${pref}*.[cylsp]") set allSrcs=()
  201. endif
  202. set mdsrcs =( *.md/${pref}*.[cylsp] )
  203. if ($#mdsrcs == 1) then
  204.     if ("$mdsrcs" == "*.md/${pref}*.[cylsp]") set mdsrcs=()
  205. endif
  206. set allSrcs=($allSrcs $mdsrcs)
  207. set mdhdrs =( *.md/${pref}*.h )
  208. if ($#mdhdrs == 1) then
  209.     if ("$mdhdrs" == "*.md/${pref}*.h") set mdhdrs=()
  210. endif
  211. set allHdrs =($hdrs $mdhdrs)
  212. unset nonomatch
  213.  
  214. #
  215. # Use sed to substitute various interesting things into the prototype
  216. # makefile. The code below is a bit tricky because some of the variables
  217. # being substituted in can be very long:  if the substitution is passed
  218. # to sed with "-e", the entire variable must fit in a single shell argument,
  219. # with a limit of 1024 characters.  By generating a separate script file
  220. # for the very long variables, the variables get passed through (to the
  221. # script file) as many arguments, which gets around the length problem.
  222. #
  223.  
  224. rm -f mkmf.tmp.sed
  225. echo s,"@@(ALLSRCS)",$allSrcs,g > mkmf.tmp.sed
  226. echo s,"@@(ALLHDRS)",$allHdrs,g >> mkmf.tmp.sed
  227. cat $proto | sed -f mkmf.tmp.sed \
  228.     -e "s,@@(DATE),`date`,g" \
  229.     -e "s,@@(MACHINES),$machines,g" \
  230.     -e "s,@@(MAKEFILE),$makefile,g" \
  231.     -e "s,@@(NAME),$name,g" \
  232.     -e "s,@@(PUBHDRS),$pubHdrs,g" \
  233.     -e "s,@@(TEMPLATE),$proto,g" \
  234.     -e "s, $name.ln,,g" \
  235.     -e "s,@@(DISTDIR),$distdir,g" \
  236.     -e "s,@@(TYPE),$subtype,g" \
  237.     > $makefile
  238. rm -f mkmf.tmp.sed
  239.  
  240. setenv PARENTDIR $cwd
  241.  
  242. if ($#domachines != 1) then
  243.     cat << EOF > "#mkmf.$$"
  244. all :: $domachines
  245. $domachines ::
  246.     @@ cd \$@@.md
  247.     @@ mkmf \$MKMFFLAGS -f md.mk 
  248.     @@ mv md.mk md.mk.tmp 
  249.     @@ sed -e "s| \$@@\.md/$name\.o||g" md.mk.tmp > md.mk 
  250.     @@ rm -f md.mk.tmp
  251. EOF
  252.     pmake -f "#mkmf.$$"
  253. else
  254.     foreach i ($domachines)
  255.         (cd $i.md; mkmf $MKMFFLAGS -f md.mk; mv md.mk md.mk.tmp; sed -e "s| $i\.md/$name\.o||g" md.mk.tmp > md.mk; rm -f md.mk.tmp)
  256.     end
  257. endif
  258.  
  259. cleanup:
  260.     rm -f "#mkmf.$$" mkmf.tmp.sed
  261. @
  262.  
  263.  
  264. 1.22
  265. log
  266. @added ALLHDRS variable
  267. @
  268. text
  269. @d19 1
  270. d21 1
  271. a21 1
  272. # $Header: /sprite/lib/mkmf/RCS/mkmf.kernel,v 1.21 91/11/03 17:51:32 jhh Exp $ (SPRITE) Berkeley
  273. d38 1
  274. a38 1
  275.  
  276. d102 1
  277. @
  278.  
  279.  
  280. 1.21
  281. log
  282. @Generates md.mk files in parallel if multiple machine types are being
  283. mkmf'ed
  284. @
  285. text
  286. @d20 1
  287. a20 1
  288. # $Header: /sprite/lib/mkmf/RCS/mkmf.kernel,v 1.20 91/04/11 12:53:28 kupfer Exp Locker: jhh $ (SPRITE) Berkeley
  289. d72 5
  290. d91 1
  291. @
  292.  
  293.  
  294. 1.20
  295. log
  296. @Flush DEFTARGET: the default target is now determined by a pmake
  297. library file.
  298. @
  299. text
  300. @d20 1
  301. a20 1
  302. # $Header: /sprite/lib/mkmf/RCS/mkmf.kernel,v 1.19 90/03/12 23:26:54 jhh Exp Locker: kupfer $ (SPRITE) Berkeley
  303. d23 2
  304. d99 20
  305. a118 3
  306. foreach i ($domachines)
  307.     (cd $i.md; mkmf $MKMFFLAGS -f md.mk; mv md.mk md.mk.tmp; sed -e "s| $i\.md/$name\.o||g" md.mk.tmp > md.mk; rm -f md.mk.tmp)
  308. end
  309. @
  310.  
  311.  
  312. 1.19
  313. log
  314. @checks its name to find corresponding Makefile.  This makes it
  315. possible to use different makefiles with the same script.
  316. @
  317. text
  318. @a9 1
  319. #    DEFTARGET    name of default target
  320. d20 1
  321. a20 1
  322. # $Header: /sprite/lib/mkmf/RCS/mkmf.kernel,v 1.18 89/10/09 21:28:07 rab Exp $ (SPRITE) Berkeley
  323. a40 1
  324. set defTarget=($DEFTARGET)
  325. a85 1
  326.     -e "s,@@(DEFTARGET),${defTarget:q},g" \
  327. @
  328.  
  329.  
  330. 1.18
  331. log
  332. @Modifications for distribution.
  333. @
  334. text
  335. @d21 1
  336. a21 1
  337. # $Header: /sprite/lib/mkmf/RCS/mkmf.kernel,v 1.17 89/08/18 11:21:36 douglis Exp Locker: rab $ (SPRITE) Berkeley
  338. d27 3
  339. d48 1
  340. a48 1
  341.     set proto="${MKMFDIR}/Makefile.kernel"
  342. @
  343.  
  344.  
  345. 1.17
  346. log
  347. @another change for TM -- use single machine if it exists, else \ds3100
  348. @
  349. text
  350. @d21 1
  351. a21 1
  352. # $Header: /sprite/lib/mkmf/RCS/mkmf.kernel,v 1.15 89/04/06 21:40:20 jhh Exp Locker: douglis $ (SPRITE) Berkeley
  353. d40 1
  354. d92 1
  355. @
  356.  
  357.  
  358. 1.16
  359. log
  360. @removed DEFTARGET -- we use $MACHINE now
  361. @
  362. text
  363. @d10 1
  364. d39 1
  365. d84 1
  366. @
  367.  
  368.  
  369. 1.15
  370. log
  371. @added abilty to make specific machine types
  372. @
  373. text
  374. @a9 1
  375. #    DEFTARGET    name of default target
  376. d20 1
  377. a20 1
  378. # $Header: /sprite/lib/mkmf/RCS/mkmf.kernel,v 1.14 88/12/04 12:36:28 ouster Exp $ (SPRITE) Berkeley
  379. a37 1
  380. set defTarget=($DEFTARGET)
  381. a81 1
  382.     -e "s,@@(DEFTARGET),$defTarget,g" \
  383. @
  384.  
  385.  
  386. 1.14
  387. log
  388. @Final (?) upgrades to kick in new C library.
  389. @
  390. text
  391. @d10 2
  392. d21 1
  393. a21 1
  394. # $Header: /sprite/lib/mkmf/RCS/mkmf.kernel,v 1.13 88/08/12 14:38:25 ouster Exp Locker: ouster $ (SPRITE) Berkeley
  395. d37 1
  396. d39 1
  397. a48 5
  398. if (" $machines " =~ *\ sun3\ *) then
  399.     set defTarget=sun3
  400. else
  401.     set defTarget=$machines[1]
  402. endif
  403. d94 2
  404. a95 1
  405. foreach i ($machines)
  406. @
  407.  
  408.  
  409. 1.13
  410. log
  411. @No need to look for MAKEFILE or MACHINES.  Also, be more restrictive
  412. on which headers are exported.
  413. @
  414. text
  415. @d19 1
  416. a19 8
  417. # Variables generated here:
  418. #    module        module to create (directories are assumed to be named
  419. #            after the modules they create)
  420. #    pref        prefix pattern that files must match to be included
  421. #    makefile    name of the makefile to create
  422. #    proto        name of prototype makefile to use to create $makefile
  423. #    machines    variable equivalent to MACHINES;  needed because env
  424. #            variables can't always be used where variables can.
  425. a20 2
  426. # $Header: mkmf.kernel,v 1.12 88/07/21 11:35:03 douglis Exp $ (SPRITE) Berkeley
  427. #
  428. d32 1
  429. a32 1
  430. set module=$cwd:t
  431. d43 1
  432. a43 1
  433. echo "Generating $makefile for module $module from $proto"
  434. d52 2
  435. a53 2
  436. set hdrs =( ${module}*.h )
  437. if ("$hdrs" == "${module}*.h") set hdrs=()
  438. d84 2
  439. a85 1
  440.     -e "s,@@(MODULE),$module,g" \
  441. d87 2
  442. a88 1
  443.     -e "s,@@(DEFTARGET),$defTarget,g" \
  444. a89 1
  445.     -e "s,@@(MAKEFILE),$makefile,g" \
  446. d91 1
  447. a91 2
  448.     -e "s,@@(DATE),`date`,g" \
  449.     -e "s, $module.ln,,g" \
  450. d96 1
  451. a96 1
  452.     (cd $i.md; mkmf $MKMFFLAGS -f md.mk; mv md.mk md.mk.tmp; sed -e "s| $i\.md/$module\.o||g" md.mk.tmp > md.mk; rm -f md.mk.tmp)
  453. @
  454.  
  455.  
  456. 1.12
  457. log
  458. @added ability to turn on echoing for all mkmf's invoked.
  459. @
  460. text
  461. @d28 1
  462. a28 1
  463. # $Header: mkmf.kernel,v 1.11 88/07/20 10:22:24 ouster Exp $ (SPRITE) Berkeley
  464. a42 5
  465.  
  466. if ($?MACHINES == 0) then
  467.     echo "No target machines for $module"
  468.     exit 1
  469. endif
  470. d44 1
  471. a44 4
  472. if ("$machines" == "") then
  473.     echo "No target machines for $module"
  474.     exit 1
  475. endif
  476. a45 6
  477. if ($?MAKEFILE) then
  478.     set makefile=$MAKEFILE
  479. else
  480.     set makefile=Makefile
  481. endif
  482.  
  483. d61 2
  484. a62 2
  485. set hdrs =( ${pref}*.h )
  486. if ("$hdrs" == "${pref}*.h") set hdrs=()
  487. a106 2
  488.  
  489. pmake dependall
  490. @
  491.  
  492.  
  493. 1.11
  494. log
  495. @Add code to be more careful about long lists of source files.
  496. @
  497. text
  498. @d11 1
  499. d28 1
  500. a28 1
  501. # $Header: mkmf.kernel,v 1.10 88/07/19 17:06:08 douglis Exp $ (SPRITE) Berkeley
  502. d31 10
  503. d119 1
  504. a119 1
  505.     (cd $i.md; mkmf -f md.mk; mv md.mk md.mk.tmp; sed -e "s| $i\.md/$module\.o||g" md.mk.tmp > md.mk; rm -f md.mk.tmp)
  506. @
  507.  
  508.  
  509. 1.10
  510. log
  511. @temporary (I hope!) patch to get mkmf to work even with
  512. lots and lots of files in *.md.
  513. @
  514. text
  515. @d27 1
  516. a27 1
  517. # $Header: mkmf.kernel,v 1.9 88/06/29 14:29:57 ouster Exp $ (SPRITE) Berkeley
  518. d68 8
  519. a75 1
  520. if ("$allSrcs" == "${pref}*.[cylsp]") set allSrcs=()
  521. a76 2
  522. # do an extra check because the == test can cause an error if > 1024 bytes
  523. # in $mdsrcs.
  524. @
  525.  
  526.  
  527. 1.9
  528. log
  529. @Had bad error message for missing .md directories.
  530. @
  531. text
  532. @d27 1
  533. a27 1
  534. # $Header: mkmf.kernel,v 1.8 88/06/17 16:28:08 ouster Exp $ (SPRITE) Berkeley
  535. d70 5
  536. a74 1
  537. if ("$mdsrcs" == "*.md/${pref}*.[cylsp]") set mdsrcs=()
  538. @
  539.  
  540.  
  541. 1.8
  542. log
  543. @Changes to handle directories with many many files.
  544. @
  545. text
  546. @d27 1
  547. a27 1
  548. # $Header: mkmf.kernel,v 1.7 88/06/06 08:34:48 ouster Exp $ (SPRITE) Berkeley
  549. d34 1
  550. a34 1
  551.     echo "No target machines for $prog"
  552. d39 1
  553. a39 1
  554.     echo "No target machines for $prog"
  555. @
  556.  
  557.  
  558. 1.7
  559. log
  560. @Remove this module from lint library list, print out real name
  561. of makefile when it's not "Makefile".
  562. @
  563. text
  564. @d27 1
  565. a27 1
  566. # $Header: mkmf.kernel,v 1.6 88/06/05 17:42:09 ouster Exp $ (SPRITE) Berkeley
  567. d75 7
  568. a81 3
  569. # Generate the Makefile, making appropriate substitutions.  The $module.ln
  570. # substitution is to remove the module's own installed .ln file from the
  571. # list of lint libraries to use when linting this module.
  572. d84 3
  573. a86 1
  574. cat $proto | sed \
  575. d88 1
  576. a88 1
  577.     -e "s,@@(MACHINES),$MACHINES,g" \
  578. d90 1
  579. a90 1
  580.     -e "s,@@(ALLSRCS), $allSrcs,g" \
  581. a91 1
  582.     -e "s,@@(PUBHDRS),$pubHdrs,g" \
  583. d94 3
  584. a96 1
  585.     -e "s, $module.ln,,g" > $makefile
  586. @
  587.  
  588.  
  589. 1.6
  590. log
  591. @Changed kernel stuff to parallel commands and library.
  592. @
  593. text
  594. @d27 1
  595. a27 1
  596. # $Header: mkmf.kernel,v 1.4 88/04/29 18:43:09 deboor Exp $ (SPRITE) Berkeley
  597. d55 1
  598. a55 1
  599. echo "Generating a Makefile for module $module from $proto"
  600. d74 6
  601. d88 2
  602. a89 1
  603.     -e "s,@@(DATE),`date`,g" > $makefile
  604. @
  605.  
  606.  
  607. 1.5
  608. log
  609. @JO checking in for deboor.
  610. @
  611. text
  612. @d4 2
  613. a5 2
  614. # from a prototype Makefile.  This version is intended to work with
  615. # subdirectories corresponding to two machine types, sun2 and sun3.
  616. d7 20
  617. a28 1
  618. set path = (/sprite/cmds /sprite/local/cmds /sprite/att/cmds)
  619. d31 1
  620. d33 10
  621. a53 1
  622. echo "Generating a Makefile for $module module from $proto"
  623. d55 1
  624. a55 9
  625. #
  626. # Find all machine-independent source and header files
  627. #
  628. set nonomatch pref='[a-z_]'
  629. set Cfiles=(${pref}*.c)
  630. set Hfiles=(${pref}*.h)
  631. set Sfiles=(${pref}*.s)
  632. # Pfiles is public header files.  In sun & utils, the prefix convention is
  633. # not kept so make sure all files are "public".
  634. d57 2
  635. a58 2
  636. if ($module == "sun" || $module == "utils" || $module == "mach") then
  637.     set Pfiles = ($Hfiles)
  638. d60 1
  639. a60 1
  640.     set Pfiles=(${module}*.h)
  641. d62 10
  642. a73 12
  643. #
  644. # Make sure the variables contain valid values: because of nonomatch being
  645. # set, if no matching files are found, they will contain such things as
  646. # [a-z]_*.c, which is unhelpful.
  647. #
  648. if ("$Cfiles" == "${pref}*.c") set Cfiles=()
  649. if ("$Hfiles" == "${pref}*.h") set Hfiles=()
  650. if ("$Sfiles" == "${pref}*.s") set Sfiles=()
  651. if ("$Pfiles" == "${module}*.h" || "$Pfiles" == "${pref}*.h") set Pfiles=($Hfiles)
  652.  
  653. if (-e Makefile) mv  Makefile Makefile.$$~
  654.  
  655. d75 1
  656. d77 4
  657. a80 5
  658.     -e "s,@@(MODULE),$module,g" \
  659.     -e "s,@@(CSRCS),$Cfiles,g" \
  660.     -e "s,@@(SSRCS),$Sfiles,g" \
  661.     -e "s,@@(HDRS),$Hfiles,g" \
  662.     -e "s,@@(PUBHDRS),$Pfiles,g" \
  663. a81 1
  664.     -e "s,$module\.ln,,g" \
  665. d84 3
  666. a86 3
  667. if ("$MACHINES" == "") then
  668.     echo Warning: no machine-dependent directories exist.
  669. endif
  670. d88 1
  671. a88 1
  672. make mkmf
  673. @
  674.  
  675.  
  676. 1.4
  677. log
  678. @Added use of $MACHINES and handled empty Pfiles in sun and
  679. utils.
  680. @
  681. text
  682. @d4 1
  683. a4 1
  684. # from the prototype Makefile.  This version is intended to work with
  685. d7 1
  686. a7 1
  687. # $Header: mkmf.kernel,v 1.3 88/03/31 17:14:39 deboor Exp $ (SPRITE) Berkeley
  688. d36 1
  689. a36 1
  690. if ($module == "sun" || $module == "utils") then
  691. @
  692.  
  693.  
  694. 1.3
  695. log
  696. @*** empty log message ***
  697. @
  698. text
  699. @d7 1
  700. a7 1
  701. # $Header: mkmf.kernel,v 1.2 88/03/19 18:15:50 deboor Exp $ (SPRITE) Berkeley
  702. d51 1
  703. a51 1
  704. if ("$Pfiles" == "${module}*.h") set Pfiles=($Hfiles)
  705. d56 1
  706. d66 3
  707. a68 1
  708. if (! -e Object.sun2) mkdir Object.sun2 Object.sun3
  709. @
  710.  
  711.  
  712. 1.2
  713. log
  714. @Adapted to mkmf
  715. @
  716. text
  717. @d7 1
  718. a7 1
  719. # $Header$ (SPRITE) Berkeley
  720. d25 4
  721. d62 1
  722. @
  723.  
  724.  
  725. 1.1
  726. log
  727. @Initial revision
  728. @
  729. text
  730. @d7 2
  731. a9 1
  732. rehash
  733. d11 1
  734. a11 2
  735. set module=`pwd`
  736. set module=$module:t
  737. d13 5
  738. a17 1
  739. echo "Generating a Makefile for module: $module"
  740. d19 10
  741. a28 6
  742. unalias ls
  743. set nonomatch
  744. set Cfiles=`ls [a-z_]*.c`
  745. set Hfiles=`ls [a-z_]*.h`
  746. set Sfiles=`ls [a-z_]*.s`
  747.  
  748. d35 1
  749. a35 1
  750.     set Pfiles=`ls ${module}*.h`
  751. d37 1
  752. d39 10
  753. d51 8
  754. a58 5
  755. if (-e Makefile.proto) then
  756.     set proto=Makefile.proto
  757. else
  758.     set proto=/sprite/src/lib/makemake/Makefile.kernel
  759. endif
  760. a59 24
  761. cat $proto | \
  762.     sed -e "s/module-name/$module/" \
  763.     -e "s/^CSRCS.*/CSRCS = $Cfiles/" \
  764.     -e "s/^ASMSRCS.*/ASMSRCS = $Sfiles/" \
  765.     -e "s/^HDRS.*/HDRS = $Hfiles/" \
  766.     -e "s/^PUBHDRS.*/PUBHDRS = $Pfiles/" \
  767.     > Makefile
  768.  
  769. #     -e "s/^OBJS.*/OBJS = $Ofiles/" \
  770. #    -e "s/^POBJS.*/POBJS = $POfiles/" \
  771. #    -e "s/..LINT.\/$module\.ln//" \
  772.     
  773. if (-e Makefile.sed) then
  774.     echo "Modifying with Makefile.sed."
  775.     mv Makefile{,.$$~~}
  776.     sed -f Makefile.sed Makefile.$$~~ > Makefile
  777.     rm Makefile.$$~~
  778. endif
  779.  
  780. if (-e Makefile.ex) then
  781.     echo "Modifying with Makefile.ex."
  782.     ex - Makefile < Makefile.ex
  783. endif
  784.  
  785. d62 1
  786. a62 1
  787. make makemake
  788. @
  789.